home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
libs
/
intuisup.lha
/
Intuisup
/
source.lha
/
Render
/
render.h
< prev
Wrap
C/C++ Source or Header
|
1992-09-14
|
6KB
|
152 lines
/* $Revision Header *** Header built automatically - do not edit! ***********
*
* (C) Copyright 1991 by Torsten Jürgeleit
*
* Name .....: render.h
* Created ..: Thursday 19-Dec-91 15:14:39
* Revision .: 4
*
* Date Author Comment
* ========= ==================== ====================
* 14-Sep-92 Torsten Jürgeleit open_window(): new flag to prevent
* adding of inner window offsets
* 28-Jul-92 Torsten Jürgeleit open window centered over position
* of mouse pointer
* 12-May-92 Torsten Jürgeleit text colors for IClearWindow()
* 30-Apr-92 Torsten Jürgeleit raster for clear_window()
* 19-Dec-91 Torsten Jürgeleit Created this file!
*
****************************************************************************
*
* Defines, structures, prototypes and pragmas for render functions
*
* $Revision Header ********************************************************/
#ifndef ISUP_RENDER_H
#define ISUP_RENDER_H
/* ID for ISUP structures and intuition messages */
#define ISUP_ID ((ULONG)'I' << 24 | (ULONG)'S' << 16 | 'U' << 8 | 'P')
/* Defines for render info flags */
#define RENDER_INFO_FLAG_INNER_WINDOW (1 << 0) /* use upper left corner of inner window as location (0,0) */
#define RENDER_INFO_FLAG_BACK_FILL (1 << 1) /* fill window back ground with different color */
#define RENDER_INFO_FLAG_AVAIL_FONTS (1 << 2) /* scan available fonts and use this list for ask_font/open_font */
/* Defines for open window flags */
#define OPEN_WINDOW_FLAG_CENTER_SCREEN (1 << 0) /* center window on screen */
#define OPEN_WINDOW_FLAG_RENDER_PENS (1 << 1) /* use render pens for detail and backfill pen */
#define OPEN_WINDOW_FLAG_CENTER_MOUSE (1 << 2) /* center window over current position of mouse pointer */
#define OPEN_WINDOW_FLAG_NO_INNER_WINDOW (1 << 3) /* don't add inner window offsets for RENDER_INFO_FLAG_INNER_WINDOW */
/* Defines for clear window flags */
#define CLEAR_WINDOW_FLAG_CUSTOM_DRAW_MODE (1 << 0) /* don't change draw mode */
#define CLEAR_WINDOW_FLAG_CUSTOM_COLOR (1 << 1) /* don't change background color */
#define CLEAR_WINDOW_FLAG_NORMAL_COLOR (1 << 2) /* use normal background color */
#define CLEAR_WINDOW_FLAG_USE_RASTER (1 << 3) /* use standard raster for window background */
#define CLEAR_WINDOW_FLAG_ABSOLUTE_POS (1 << 4) /* don't add window border offset to given upper left position */
#define CLEAR_WINDOW_FLAG_TEXT1_COLOR (1 << 5) /* use text color 1 */
#define CLEAR_WINDOW_FLAG_TEXT2_COLOR (1 << 6) /* use text color 2 */
/* Defines for internal use only */
#define MAX_RENDER_COLORS 16 /* max screen colors to look at */
#define MAX_RENDER_IMAGES 11
#define IMAGE_ARROW_LEFT 0
#define IMAGE_ARROW_RIGHT 1
#define IMAGE_ARROW_UP 2
#define IMAGE_ARROW_DOWN 3
#define IMAGE_KNOB_UNSELECTED 4
#define IMAGE_KNOB_SELECTED 5
#define IMAGE_CHECK_UNSELECTED 6
#define IMAGE_CHECK_SELECTED 7
#define IMAGE_CYCLE 8
#define IMAGE_COUNT_LEFT 9
#define IMAGE_COUNT_RIGHT 10
#define IMAGE_ARROW_WIDTH 9 /* fixed dimensions for images */
#define IMAGE_ARROW_HEIGHT 5
#define IMAGE_ARROW_DEPTH 1
#define IMAGE_KNOB_WIDTH 18
#define IMAGE_KNOB_HEIGHT 9
#define IMAGE_KNOB_DEPTH 2
#define IMAGE_CHECK_WIDTH 13
#define IMAGE_CHECK_HEIGHT 7
#define IMAGE_CHECK_DEPTH 1
#define IMAGE_CYCLE_WIDTH 16
#define IMAGE_CYCLE_HEIGHT 9
#define IMAGE_CYCLE_DEPTH 2
#define IMAGE_COUNT_WIDTH 8
#define IMAGE_COUNT_HEIGHT 5
#define IMAGE_COUNT_DEPTH 1
#define IMAGE_HORIZ_OFFSET 4
#define IMAGE_VERT_OFFSET 2
#define INTUISUP_DATA_END 0 /* end marker for data arrays */
/* Structures */
struct RenderInfo {
LONG ri_ID; /* id = 'ISUP' */
struct Screen *ri_Screen;
USHORT ri_ScreenWidth;
USHORT ri_ScreenHeight;
UBYTE ri_ScreenDepth;
UBYTE ri_WindowBorderTop;
UBYTE ri_WindowBorderLeft;
UBYTE ri_WindowBorderRight;
UBYTE ri_WindowBorderBottom;
UBYTE ri_HighlightPen;
UBYTE ri_ShadowPen;
UBYTE ri_TextPen1;
UBYTE ri_TextPen2;
UBYTE ri_BackPen;
USHORT ri_Flags;
ULONG ri_ImageDataSize;
USHORT *ri_ImageData;
ULONG ri_AvailFontsHeaderSize;
struct AvailFontsHeader *ri_AvailFontsHeader;
struct TextFont *ri_TextFont;
struct TextAttr ri_TextAttr;
struct Image ri_Images[MAX_RENDER_IMAGES];
};
/* Global prototypes */
struct RenderInfo *get_render_info(struct Screen *screen, USHORT flags);
SHORT calc_color_difference(SHORT color1, SHORT color2);
VOID free_render_info(struct RenderInfo *ri);
struct Window *open_window(struct RenderInfo *ri, struct NewWindow *nw,
USHORT flags);
VOID clear_window(struct RenderInfo *ri, struct Window *win,
USHORT left_edge, USHORT top_edge, USHORT width, USHORT height,
USHORT flags);
VOID close_window(struct Window *win, BOOL more_windows);
struct AvailFontsHeader *avail_fonts(struct RenderInfo *ri);
struct TextAttr *ask_font(struct RenderInfo *ri,
struct TextAttr *ta);
struct TextFont *open_font(struct RenderInfo *ri,
struct TextAttr *ta);
/* Global pragmas (Aztec C v5.2a) */
#pragma intfunc(get_render_info(a0,d0))
#pragma regcall(calc_color_difference(d0,d1)) /* internal function */
#pragma intfunc(free_render_info(a0))
#pragma intfunc(open_window(a0,a1,d0))
#pragma intfunc(clear_window(a0,a1,d0,d1,d2,d3,d4))
#pragma intfunc(close_window(a0,d0))
#pragma intfunc(avail_fonts(a0))
#pragma intfunc(ask_font(a0,a1))
#pragma intfunc(open_font(a0,a1))
#endif /* ISUP_RENDER_H */